/*
 * Copyright 2007 Jeffrey Palm
 */

class UserAgents {

  private static String[] userAgents;

  public static String randomUserAgent() {
    if (userAgents == null) {
      userAgents = new String[] {
        "9.53 on Windows XP SP2 — amaya/9.53 libwww/5.4.0",
        "1.1 — Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.1; Windows NT 5.1;)",
        "1.2 — Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.2; Windows NT 5.1;)",
        "1.5 — Mozilla/4.0 (compatible; MSIE 6.0; America Online Browser 1.1; rev1.5; Windows NT 5.1;)",
        "1.0b1 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US; rv:1.8) Gecko/20051107 Camino/1.0b1",
        "1.0 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.1) Gecko/20060214 Camino/1.0",
        "1.0.1 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.3) Gecko/20060427 Camino/1.0.1",
        "1.0.2 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2",
        "1.0.3 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Max OS X Mach-O; en-US; rv:1.8.0.7) Gecko/200609211 Camino/1.0.3",
        "2.14.2.1 on Ubuntu — Mozilla/5.0 (X11; U; Linux x86_64; en-GB; rv:1.8.0.4) Gecko/20060608 Ubuntu/dapper-security Epiphany/2.14",
        "2.14.2.1 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.5) Gecko/20060626 (Debian-1.8.0.5-3) Epiphany/2.14",
        "2.14.2.1 on Fedora Core 5 — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.13) Gecko/20060501 Epiphany/2.14",
        "2.14.3 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060928 (Debian-1.8.0.7-1) Epiphany/2.14",
        "0.7.7 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061031 Firefox/1.5.0.7 Flock/0.7.7",
        "3.03 on Mac OS X — Mozilla/5.0 (compatible; iCab 3.0.3; Macintosh; U; PPC Mac OS X)",
        "1.5.0.7-g2 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20061022 Iceweasel/1.5.0.7-g2",
//           o 2.0 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1) Gecko/20061024 Iceweasel/2.0 (Debian-2.0+dfsg-1)
//           o 2.0.0.1 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.1) Gecko/20061205 Iceweasel/2.0.0.1

//           o 1.0 on Windows 95 — Microsoft Internet Explorer/4.0b1 (Windows 95)
//           o 1.5 on Windows NT — Mozilla/1.22 (compatible; MSIE 1.5; Windows NT)
//           o 2.0 on Windows 95 — Mozilla/1.22 (compatible; MSIE 2.0; Windows 95)
//           o 3.01 on Windows 98 — Mozilla/2.0 (compatible; MSIE 3.01; Windows 98)
//           o 5.0 on SunOS — Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.9 sun4u; X11)
//           o 5.0.1 on Windows 2000 — Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)
//           o 5.1.7 on Mac OS 9 — Mozilla/4.0 (compatible; MSIE 5.17; Mac_PowerPC)
//           o 5.2.3 on Mac OS X — Mozilla/4.0 (compatible; MSIE 5.23; Mac_PowerPC)
//           o 5.5 on Windows 2000 — Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)
//           o 6.0 in MSN 2.5 on Windows 98 — Mozilla/4.0 (compatible; MSIE 6.0; MSN 2.5; Windows 98)
//           o 6.0 on Windows XP SP2 — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
//           o 6.0 on Windows XP SP2 with .NET Framework 1.1 installed — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
//           o 6.0 on Windows XP SP2 with .NET Framework 2.0 installed — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
//           o 6.0 on Windows XP Media Center Edition 2005 with .NET Framework 1.0, 1.1, and 2.0 installed— Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.0.3705; .NET CLR 1.1.4322; Media Center PC 4.0; .NET CLR 2.0.50727)
//           o 6.0 on Windows Server 2003 Service Pack 1 with .NET Framework 1.1 installed — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)
//           o 7.0 beta running on Windows XP — Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 5.1)
//           o 7.0 beta 1 running on Windows XP — Mozilla/4.0 (compatible; MSIE 7.0b; Win32)
//           o 7.0 beta running on Windows Vista — Mozilla/4.0 (compatible; MSIE 7.0b; Windows NT 6.0)
//           o 7.0 beta 2 on Windows XP SP2 — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; SV1; Arcor 5.005; .NET CLR 1.0.3705; .NET CLR 1.1.4322)
//           o 7.0 on Windows XP SP2 — Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; YPC 3.0.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)

//           o Microsoft Pocket Internet Explorer/0.6 - PIE 1.0, seems that they forgot to change it to 1.0.
//           o Mozilla/1.1 (compatible; MSPIE 2.0; Windows CE) - PIE 2.0
//           o On Windows Mobile 2003 — Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; PPC; 240x320)
//           o On Windows Mobile 2003 Second Edition, running on a Motorola MPx220 Smartphone — MOT-MPx220/1.400 Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)
//           o On Windows Mobile 5.0, running on a Motorola Q Smartphone — Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 176x220)
//           o On Windows Mobile 5.0, running on a generic HTC Tornado Smartphone — Mozilla/4.0 (compatible; MSIE 4.01; Windows CE; Smartphone; 240x320)
//           o Post Windows Mobile 5.0 — Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; IEMobile m.n) where "m.n" is just a major.minor version number. Full specifics at the IE Mobile Team Blog
//           o Motorola VIP1200 — Mozilla/4.0 (compatible; MSIE 6.0; Windows CE; Motorola VIP12xx)

//           o 0.9 on Windows Vista — Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.7.13) Gecko/20050610 K-Meleon/0.9
//           o 1.0 on Windows NT 4.0 — Mozilla/5.0 (Windows; U; WinNT4.0; en-US; rv:1.8.0.5) Gecko/20060706 K-Meleon/1.0

//           o 3.1-RC1 on Linux — Mozilla/5.0 (compatible; Konqueror/3.1-rc3; i686 Linux; 20020515)
//           o 3.1 on Linux — Mozilla/5.0 (compatible; Konqueror/3.1; Linux 2.4.22-10mdk; X11; i686; fr, fr_FR)
//           o 3.4 on Linux — Mozilla/5.0 (compatible; Konqueror/3.4; Linux) KHTML/3.4.2 (like Gecko)
//           o 3.5 on Fedora Core 5 — Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.15-1.2054_FC5; X11; i686; en_US) KHTML/3.5.4 (like Gecko)
//           o 3.5 on Debian Linux (backport) — Mozilla/5.0 (compatible; Konqueror/3.5; Linux 2.6.16-2-k7) KHTML/3.5.0 (like Gecko) (Debian package 4:3.5.0-2bpo2)
//           o 3.5.5 on Debian Linux — Mozilla/5.0 (compatible; Konqueror/3.5; Linux) KHTML/3.5.5 (like Gecko) (Debian)

//           o 0.99pre14 under Cygwin on Windows 2000 — Links (0.99pre14; CYGWIN_NT-5.0 1.5.16(0.128/4/2) i686; 80x25)
//           o 2.1pre17 on Gentoo Linux — Links (2.1pre17; Linux 2.6.11-gentoo-r8 i686; 80x24)
//           o 2.1pre19 on Gentoo Linux using the X Window System — Links (2.1pre19; Linux 2.6.14-gentoo-r5 i686; x)

//           o 2.8.5rel.1 on Fedora Core 5 — Lynx/2.8.5rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.8a
//           o 2.8.4rel.1 on Linux — Lynx/2.8.4rel.1 libwww-FM/2.14


//           o 1.7.8 on Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.8) Gecko/20050511
//           o 1.7.12 on Gentoo Linux — Mozilla/5.0 (X11; U; Linux i686; cs-CZ; rv:1.7.12) Gecko/20050929

//           o 0.5 on Windows (Firefox was named Phoenix at the time) — Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.3a) Gecko/20030105 Phoenix/0.5
//           o 0.7 on Windows (Firefox was named Firebird at the time) — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.6b) Gecko/20031215 Firebird/0.7+
//           o 1.0 (Dutch) on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; nl-NL; rv:1.7.5) Gecko/20041202 Firefox/1.0
//           o 1.0.4 on FreeBSD 5.4 on i386 — Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.7.8) Gecko/20050609 Firefox/1.0.4
//           o 1.0.5 on Slackware — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.7.9) Gecko/20050711 Firefox/1.0.5
//           o 1.0.6 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6
//           o 1.0.7 on Mac OS 10.3 10.3 PowerPC — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7
//           o 1.5 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; nl; rv:1.8) Gecko/20051107 Firefox/1.5
//           o 1.5.0.1 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.0.1) Gecko/20060111 Firefox/1.5.0.1
//           o 1.5.0.2 on Ubuntu Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.2) Gecko/20060308 Firefox/1.5.0.2
//           o 1.5.0.3 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.3) Gecko/20060426 Firefox/1.5.0.3
//           o 1.5.0.4 on Windows Vista — Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US; rv:1.8.0.4) Gecko/20060508 Firefox/1.5.0.4
//           o 1.5.0.6 on Fedora Core 5 — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.6) Gecko/20060808 Fedora/1.5.0.6-2.fc5 Firefox/1.5.0.6 pango-text
//           o 1.5.0.7 on Mac OS X — Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.7) Gecko/20060909 Firefox/1.5.0.7
//           o 2.0 on Ubuntu Linux, on AMD64 — Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.8.1) Gecko/20060601 Firefox/2.0 (Ubuntu-edgy)
//           o 2.0.0.1 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.1) Gecko/20061204 Firefox/2.0.0.1
//           o 3.0a1 on Ubuntu Linux, on AMD64 — Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9a1) Gecko/20061204 GranParadiso/3.0a1


//           o 6.1 on Windows 2000 — Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:0.9.2) Gecko/20020508 Netscape6/6.1
//           o 7 on Sun Solaris 8 — Mozilla/5.0 (X11; U; SunOS sun4u; en-US; rv:1.0.1) Gecko/20020920 Netscape/7.0
//           o 7.1 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)
//           o 7.2 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2 (ax)
//           o 7.2 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.2) Gecko/20040804 Netscape/7.2
//           o 8.0.1 on Windows XP using Gecko — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20050519 Netscape/8.0.1
//           o 8.0.1 on Windows XP using MSHTML (with .NET installed) — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50215) Netscape/8.0.1
//           o 8.1 on Windows XP using Gecko (with .NET installed) — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.5) Gecko/20060127 Netscape/8.1

//           o 2.02 on OS/2 with option -3 — Mozilla/3.0 (OS/2; U)
//           o 3.0 on SunOS with weak security — Mozilla/3.0 (X11; I; SunOS 5.4 sun4m)
//           o 4.61 on Macintosh with weak security — Mozilla/4.61 (Macintosh; I; PPC)
//           o 4.61 on OS/2 with strong security — Mozilla/4.61 [en] (OS/2; U)
//           o 4.7 on Macintosh — Mozilla/4.7C-CCK-MCD {C-UDP; EBM-APPLE} (Macintosh; I; PPC)
//           o 4.76 on Mac OS 9 — Mozilla/4.76 (Macintosh; U; PPC)
//           o 4.8 on Windows 2000 — Mozilla/4.8 [en] (Windows NT 5.0; U)

//           o Palm Web Pro 3.0.1a on Palm OS — Mozilla/4.76 [en] (PalmOS; U; WebPro/3.0.1a; Palm-Arz1)

//           o 3.5a on Windows 2000 — Mozilla/4.7 (compatible; OffByOne; Windows 2000)
//           o 3.5d on Windows XP SP2 — Mozilla/4.7 (compatible; OffByOne; Windows 2000)

//           o 5.1.1 (v563.51) on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.51
//           o 5.1.2 beta 1 (v563.57) on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/125.4 (KHTML, like Gecko, Safari) OmniWeb/v563.57


//           o 6.03 on Windows 2000, cloaked as MSIE — Mozilla/4.0 (compatible; MSIE 5.0; Windows 2000) Opera 6.03 [en]
//           o 6.03 on Mac OS 9, cloaked as MSIE — Mozilla/4.0 (compatible; MSIE 5.0; Mac_PowerPC) Opera 6.0 [en]
//           o 7.23 on Windows 98 — Opera/7.23 (Windows 98; U) [en]
//           o 8.00 on Gentoo Linux — Opera/8.0 (X11; Linux i686; U; cs)
//           o 8.02 on Nokia 770/Maemo — Mozilla/4.0 (compatible; MSIE 6.0; ; Linux armv5tejl; U) Opera 8.02 [en_US] Maemo browser 0.4.31 N770/SU-18
//           o 8.02 on Sony mylo — Opera/8.02 (Qt embedded; Linux armv4ll; U) [en] SONY/COM1
//           o 8.50 on Windows XP, cloaked as MSIE — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 8.50
//           o 8.50 on Windows XP, cloaked as Mozilla — Mozilla/5.0 (Windows NT 5.1; U; en) Opera 8.50
//           o 8.50 on Nokia 6630 (in Spanish) — Mozilla/4.0 (compatible; MSIE 6.0; Symbian OS; Nokia 6630/4.03.38; 6937) Opera 8.50 [es]
//           o 8.50 on Nintendo DS (Japanese) — Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [ja]
//           o 8.50 on Nintendo DS (European) — Mozilla/4.0 (compatible; MSIE 6.0; Nitro) Opera 8.50 [en]
//           o 8.51 on Windows XP — Opera/8.51 (Windows NT 5.1; U; en)
//           o 9.00 on Wii Shop Channel — Opera/9.00 (Wii; U; ; 1038-58; Wii Shop Channel/1.0; en)
//           o 9.00 on Wii Internet Channel (Trial Version) — Opera/9.00 (Nintendo Wii; U; ; 1309-9; en)
//           o 9.01 on Debian Linux — Opera/9.01 (X11; Linux i686; U; en)
//           o 9.02 on Windows XP — Opera/9.02 (Windows NT 5.1; U; en)
//           o 9.10 on Windows XP — Opera/9.10 (Windows NT 5.1; U; en)

//           o 2.0.4719 on J2ME on the Sony Ericsson W800i — Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4719; en; U; ssr)
//           o 2.0.4509 on J2ME on the Motorola RAZR V3 — Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4509/1316; fi; U; ssr)
//           o 2.0.3920 on J2ME on Palm OS — Opera/2.0.3920 (J2ME/MIDP; Opera Mini; en; U; ssr)
//           o 2.0 on J2ME — Opera/8.01 (J2ME/MIDP; Opera Mini/2.0.4062; en; U; ssr)
//           o 3.0 on J2ME — Opera/8.01 (J2ME/MIDP; Opera Mini/3.0.6306/1528; nb; U; ssr)



//           o v125 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/124 (KHTML, like Gecko) Safari/125
//           o v125 on Mac OS X, cloaked as MSIE — Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2)
//           o v312 on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/312.1 (KHTML, like Gecko) Safari/312
//           o 2.0 (v412) on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/412 (KHTML, like Gecko) Safari/412
//           o 2.0.4 (419.3) on Mac OS X — Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3
//           o 3.0 (v521) on Mac OS X — Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en) AppleWebKit/521.25 (KHTML, like Gecko) Safari/521.24

//           o 1.0 on Windows 98 — Mozilla/5.0 (Windows; U; Win98; en-US; rv:1.8.0.1) Gecko/20060130 SeaMonkey/1.0
//           o 1.0.2 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.4) Gecko/20060516 SeaMonkey/1.0.2
//           o 1.0.4 on Windows XP — Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.6) Gecko/20060728 SeaMonkey/1.0.4
//           o 1.0.5 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.7) Gecko/20060910 SeaMonkey/1.0.5
//           o 1.0.6 on Debian Linux — Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.8) Gecko/20061029 SeaMonkey/1.0.6
      };
    }
    int rand = (int)(Math.random()*userAgents.length);
    return userAgents[rand];
  }
}